//
//  RefreshView.h
//  Category
//
//  Created by Burn on 2020/1/7.
//  Copyright © 2020 menksoft. All rights reserved.
//

#import <UIKit/UIKit.h>


typedef NS_ENUM(NSUInteger, RefreshState) {
    /** 普通闲置状态 */
    RefreshIdle = 1,
    /** 松开就可以进行刷新的状态 */
    RefreshPulling,
    /** 正在刷新中的状态 */
    RefreshRefreshing,
    /** 即将刷新的状态 */
    RefreshWillRefresh,
    /** 所有数据加载完毕，没有更多的数据了 */
    RefreshNoMoreData,
};




NS_ASSUME_NONNULL_BEGIN

@interface RefreshView : UIView

@property(assign,nonatomic) RefreshState state;

/** 记录scrollView刚开始的inset */
@property (assign, nonatomic, readonly) UIEdgeInsets scrollViewOriginalInset;
/** 父控件 */
@property (weak, nonatomic, readonly) UIScrollView *scrollView;

/** 初始化 */
- (void)prepare NS_REQUIRES_SUPER;

/** 摆放子控件frame */
- (void)placeSubviews NS_REQUIRES_SUPER;

/** 当scrollView的contentOffset发生改变的时候调用 */
- (void)scrollViewContentOffsetDidChange:(NSDictionary *)change NS_REQUIRES_SUPER;

/** 当scrollView的contentSize发生改变的时候调用 */
- (void)scrollViewContentSizeDidChange:(NSDictionary *)change NS_REQUIRES_SUPER;

/** 当scrollView的拖拽状态发生改变的时候调用 */
- (void)scrollViewPanStateDidChange:(NSDictionary *)change NS_REQUIRES_SUPER;


@end

NS_ASSUME_NONNULL_END
